#include <stdio.h>

// #define V1_A_GPIO_PIN_10		(*((volatile unsigned long *) (PERIPH_BB_BASE+(PORTE_ODR_OFFSET)*32+10*4)))
// unsigned long* SPI_CS[2] = {&V1_A_GPIO_PIN_10}; //位带操作，数组索引方式


int cc = 1000;
int aa = 100;

unsigned long* bbb[2] = {&(*(unsigned long*)(&aa)),(unsigned long*)(&aa)};

/**
 * @brief 此代码主要作用是用来验证STM32的位带操作，用数组索引的方式
 * @brief 结论：这个验证过程，也对指针的用法进行了加深；取地址(&) 和 取值操作(*)可以对一个内存地址（或变量）多重嵌套使用
 */
void test_for_pointer(void)
{
	printf("addr1:%p\naddr2:%p\nvalue1:%d\nvalue2:%d\n",\
	&(*(unsigned long*)(&aa)),\
	&aa,\
	*bbb[1],\
	*(&(*(unsigned long*)(&aa))));
	return 0;	
} 
